1. Field of the Invention
The present invention relates to test executive software for organizing and executing test sequence files, e.g., test sequence files to measure and/or control instrumentation systems, and more particularly relates to a system and method for detecting differences between test sequence files.
2. Description of the Related Art
A test executive is a program that allows a user to organize and execute sequences (also referred to as test sequence files) of reusable test modules to automatically control a test, such as a test involving one or more instruments or devices or software applications. The test modules often have a standard interface and typically can be created in a variety of programming environments. The test executive software operates as the control center for the automated test system. More specifically, the test executive software allows the user to create, configure, and/or control test sequence execution for various test applications, such as production and manufacturing test applications. Text executive software typically includes various features, such as test sequencing based on pass/fail results, logging of test results, and report generation, among others.
Test executives include various general concepts. The following comprises a glossary of test executive nomenclature.
Code Modulexe2x80x94A program module, such as a Windows Dynamic Link Library (.dll), Java class file, LabVIEW VI (.vi), or other software program, object, or component etc., that contains one or more functions that perform a specific test or other action.
Test Modulexe2x80x94A code module that performs a test.
Stepxe2x80x94Any action, such as calling a test module to perform a specific test, that the user may include within a sequence of other actions.
Step Modulexe2x80x94A code module called by a step.
Sequencexe2x80x94A series of steps that the user specifies for execution in a particular order. Whether and when a step is executed may depend on the results of previous steps.
Subsequencexe2x80x94A sequence called by another sequence. The user specifies a subsequence call as a step in the calling sequence.
Sequence Filexe2x80x94A file that contains the definition of one or more sequences.
Sequence Editorxe2x80x94A program that provides a graphical user interface for creating, editing, and debugging sequences.
Run-time Operator Interfacexe2x80x94A program that provides a graphical user interface for executing sequences on a production station. A sequence editor and run-time operator interface may be separate application programs or different aspects of the same program.
Test Executive Enginexe2x80x94A module or set of modules that provide an application programming interface (API) for creating, editing, executing, and debugging sequences. A sequence editor or run-time operator interface may use the services of a test executive engine.
Application Development Environment (ADE)xe2x80x94A programming environment such as LabVIEW, LabWindows/CVI, Microsoft Visual Basic, Borland Delphi or Microsoft Visual C++, in which the user may create test modules and run-time operator interfaces.
Unit Under Test (UUT)xe2x80x94A device or component that is being tested; may include software and/or hardware elements.
In many cases it is useful to provide users with the ability to define variables and properties which affect the execution behavior of a test executive sequence. For example, a particular step may be used in testing a group of different devices, but the step may need to use different limit values for each device. In this example, properties for the limit values may be defined for the step, and the property values may be changed as necessary for each device, without requiring any modifications to the code module that the step calls.
As the underlying unit under test changes over time, the corresponding test executive sequences may need adjustments. The user may edit the test executive sequences based upon the new or improved functionality of the unit under test. Thus, it would be desirable to provide a way to automatically determine and display differences between various versions of test executive sequences and steps, to assist the user (e.g., a test developer) in determining the correctness of the new versions of the test executive sequences. In particular, it would be desirable to compare the data structures of various versions of test executive sequences and steps, and to display the resulting differences in a graphical user interface.
The present invention provides various embodiments of an improved method and system for detecting differences between a first test executive sequence file and a second test executive sequence file in a computer system. The first test executive sequence file and the second test executive sequence file may be stored in a computer memory. The first test executive sequence file may comprise a first plurality of interrelated objects. Similarly, the second test executive sequence file may comprise a second plurality of interrelated objects. The first plurality of objects in the first test executive sequence file may be compared with the second plurality of objects in the second test executive sequence file. The comparison may involve comparison of the underlying data structures which represent the respective test executive sequence files. Based on the comparison, differences between the first plurality of objects and the second plurality of objects may be detected. An indication of the differences may be displayed on a display.
Both the first plurality of objects and the second plurality of objects may comprise one or more of: a sequence; a global variable; and/or a data type. In one embodiment, both the first plurality of objects and the second plurality of objects may comprise one or more of: at least one sequence; at least one global variable; and/or at least one data type. The first plurality of objects may comprise a first sequence, wherein the first sequence comprises: at least one step, at least one parameter, and at least one local variable. Similarly, the second plurality of objects may comprise a second sequence, wherein the second sequence comprises: at least one step, at least one parameter, and at least one local variable. The at least one step of the first sequence may comprise a tree structure of step properties, wherein each step property comprises one or more of: a property value, one or more property flags, and/or a property comment. Similarly, the at least one step of the second sequence may comprise a tree structure of step properties, wherein each step property comprises one or more of: a property value, one or more property flags, and/or a property comment.
The first plurality of objects and the second plurality of objects may share at least one common object. The shared common object may comprise a hierarchy of objects. The hierarchy of objects may comprise a parent object and at least one child sub-object. The hierarchy of objects of the common object in the first plurality of objects may be compared with the hierarchy of objects of the common object in the second plurality of objects. Differences between the hierarchy of objects of the common object in the first plurality of objects and the hierarchy of objects of the common object in the second plurality of objects may be detected. An indication of the differences may be displayed on a display. The indication of the differences may be navigated in order to display details of the differences. Additionally, a type of difference may be displayed for each displayed difference. The type of difference may be an insertion or a deletion. A count of differences may also be displayed.